//结束 3/28 17:00 v.10

tableData()
function tableData() {
    layui.use(['element', 'table', 'layer', 'laypage', 'form', 'upload'], function () {
        var element = layui.element
            , table = layui.table
            , layer = layui.layer
            , laypage = layui.laypage
            , form = layui.form;
        //初始化表单元素 不然select 无法使用
        form.render();
        /**搜索
         * submit(searchBtn)
         * submit固定事件
         * searchBtn  搜索按钮 lay-filter 对应的值
         *  监听提交
         */
        form.on('submit(searchBtn)', function(data){
            console.log(data.field) //当前容器的全部表单字段，名值对形式：{name: value}
            var serchValue={}
            serchValue[data.field.select]=data.field.serchValuse;
            serchValue["userType"]=0;
            //查询所有
            if(data.field.serchValuse.length==0){
                layer.msg("所有记录")
                //所有
                table.reload('student_id',{
                    url: '/user/findAllUserByStu' //设置异步接口
                    ,page: {
                        curr: 1 //重新从第 1 页开始
                    },
                });
                return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
            }
            //搜索 重载table
            tab.reload({
                url: '/user/search?userType=0&'+data.field.select+"="+data.field.serchValuse //设置异步接口
                ,page: {
                    curr: 1 //重新从第 1 页开始
                }
            });
            return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
        });

        /***********
         * 学生管理 【表格参数设置】
         * ***********/
       var tab= table.render({
            title: '学生信息表'  // title可以用于文件导出时的文件名设置
            , height: 520
            , elem: '#LayuiTable' // **table的id**
            , toolbar: '#toolbar'   // **工具栏的id**
            , url: '/user/findAllUserByStu'  //******数据接口******
            //******表头相关设置******
            ,request: {
                pageName: 'Page' //页码的参数名称，默认：page
                ,limitName: 'PageSize' //每页数据量的参数名，默认：limit
            }
            ,response: {
                statusName: 'code' //规定数据状态的字段名称，默认：code
                ,statusCode: 200 //规定成功的状态码，默认：0
                ,msgName: 'message' //规定状态信息的字段名称，默认：msg
                ,countName: 'count' //规定数据总数的字段名称，默认：count
                ,dataName: 'data' //规定数据列表的字段名称，默认：data
            }
            , cols: [[
                {type: 'checkbox', align: 'center', fixed: 'left',}
                , {field: 'userId', title: 'ID', sort: true}
                , {field: 'userNumber', title: '学号', sort: true,editField:"userNumber",edit: 'text'}
                , {field: 'userName', title: '姓名',editField:"userName",edit: 'text'}
                , {field: 'userPhone', title: '电话', sort: true,editField:"userPhone",edit: 'text'}
                // **toolbar为操作列，需要获取操作列内容id**
                , {toolbar: '#operate', title: '操作', fixed: 'right', align: 'center'}
            ]]
            , page: true    // 开启分页
            , loading: true
        });
        // **工具栏监听事件**
        /**
         * toolbar 固定事件名  mainTable=table 的 lay-filter
         */
        table.on('toolbar(mainTable)', function (obj) {
            var checkStatus = table.checkStatus(obj.config.id);
            switch (obj.event) {
                case 'add': {
                    //   var checkStatus = table.checkStatus('student_table'); //idTest 即为基础参数 id 对应的值
                    //    console.log(checkStatus.data);           //获取选中行的数据
                    //    console.log(checkStatus.data.length);    //获取选中行数量，可作为是否有选中行的条件
                    //    console.log(checkStatus.isAll);          //表格是否全选
                    // layer.msg('添加');
                    // addUser();
                    addUserLayer()
                    break;
                }
                case 'import':
                    document.getElementById("uploadEcel").click();
                    break;
                case 'delete':
                    var data=checkStatus.data;
                    var ids=[];
                    for(var i=0;i<data.length;i++){
                        // console.log(data[i].userId)
                        ids.push(data[i].userId)
                    }
                    if(ids.length==0){
                        layer.msg("没有选中任何数据！！")
                    }else {
                        layer.confirm('真的删除  共计：' + ids.length + " 条记录", function (index) {
                            //  obj.del();  //删除缓存
                            deleteUser(ids, null)
                        });
                    }

                    break;
            }
        });
        //监听行工具事件
        var oldEditValue
        /**
         * toolbar 固定事件名  mainTable=table 的 lay-filter
         */
        table.on('tool(mainTable)', function(obj){
            console.log(obj)
            var data = obj.data;
       //     console.log(obj+">>>>>")
            if(obj.event === 'delete'){
                layer.confirm('真的删除  '+data.userId+"  "+data.userName, function(index){
                    //  obj.del();  //删除缓存
                    layer.close(index);
                    var ids=[data.userId]
                    deleteUser(ids,obj);
                });
            }
            else if(obj.event === 'detail'){
               layer.msg("暂无详情",{
                   Number:1000
                });
            }else if(obj.editField === 'userNumber'){
                oldEditValue=obj.data.userNumber
              //  console.log(obj.data.userName)
            }else if(obj.editField === 'userName'){
                oldEditValue=obj.data.userName
            }else if(obj.editField === 'userPhone'){
                oldEditValue=obj.data.userPhone
            }

        });
        //监听单元格编辑
        table.on('edit(mainTable)', function(obj){
            var value = obj.value //得到修改后的值
                ,data = obj.data //得到所在行所有键值
                ,field = obj.field; //得到字段
            modify(data.userId,field,value)
        });

        //弹出添加学生的弹出框
        function addUserLayer() {
            var vue;
            layer.open({
                type: 1
                ,title: false //不显示标题栏
                ,closeBtn: true
                ,area: '410'
                ,shade: 0.8
                ,id: 'LAY_layuipro' //设定一个id，防止重复弹出
                ,btn: ['确定', '取消']
                ,btnAlign: 'c'
                ,moveType: 1 //拖拽模式，0或者1
                ,content: document.getElementById("addUserLayer").innerHTML
                ,success: function(layero, index){
                    console.log(layero, index);
                    vue=addUser();
                }
                ,btn1: function(index, layero){
                   // console.log(vue.userName);
                    layer.msg("添加中....",{
                        Number:20000
                    });
                    axios.post('/user/addStuUser', {
                        userName: vue.userName,
                        userNumber: vue.userNumber,
                        userPhone: vue.userPhone
                    })
                        .then(function (response) {
                            layer.closeAll()
                            layer.msg("添加成功");

                        })
                        .catch(function (error) {
                            layer.msg("添加失败");
                        });
                }
                ,btn2: function(index, layero){

                }
            });

        }
        //初始化弹出层 数据绑定方便提交
        function  addUser() {
            console.log("addUser....................")
            var a=   new Vue({
                el:"#student_detail",
                data:{
                    userName:'',
                    userPhone:'',
                    userNumber:''
                },
                methods:{

                }
            });
            return a;
        }

        //删除用户 ids[]
        function deleteUser(ids, obj) {
            layer.msg("正在删除...",{
            Number:9000
            });
            axios.post('/user/deleteUser', {
                    ids:ids
            })
                .then(function (response) {
                    layer.closeAll()
                    layer.msg("删除成功");
                    if(obj!=null){
                        obj.del();
                    }else{
                        tab.reload();
                    }

                })
                .catch(function (error) {
                    layer.msg("删除失败"+error);
                    console.log(error)
                });

        }

        function  modify(userId,field,value) {
            console.log(userId+field+value)
            var data={}
            data["userId"]= userId;
            data[field]= value;

            layer.msg("正在修改...",{
                Number:9000
            });
            axios.post('/user/updateUser',data
            )
                .then(function (response) {
                    var res=response.data;

                    if(res.code==200){
                        layer.msg("修改成功");
                    }else{
                        tab.read()
                    }
                })
                .catch(function (error) {
                    layer.msg("修改失败,"+error);
                    console.log(error)
                    tab.read()
                });

        }
    })
}

